package com.alameda.common.utils;

import cn.hutool.core.collection.CollectionUtil;

import java.util.*;

/**
 * 单列集合工具类
 *
 * @author Lv
 * @date 2024/10/30
 */
public class CollectionUtils extends CollectionUtil {
    /**
     * 创建ArrayList集合
     *
     * @param <E> 泛型
     * @return
     */
    public static <E> List<E> newArrayList() {
        return new ArrayList<E>();
    }

    /**
     * 创建HashSet集合
     *
     * @param <E> 泛型
     * @return
     */
    public static <E> Set<E> newHashSet() {
        return new HashSet<E>();
    }

    /**
     * list集合转化为set集合 (去重)
     *
     * @param <E>  泛型
     * @param list 待转化集合
     * @return
     */
    public static <E> Set<E> convertListToSet(List<E> list) {
        return new HashSet<E>(list);
    }

    /**
     * set集合转换为list集合
     *
     * @param <E> 泛型
     * @param set 待转化集合
     * @return
     */
    public static <E> List<E> convertSetToList(Set<E> set) {
        return new ArrayList<E>(set);
    }

    /**
     * 数组转换成list集合
     *
     * @param <E>   泛型
     * @param array 数组
     * @return
     */
    public static <E> List<E> convertArrToList(E[] array) {
        return Arrays.asList(array);
    }

    /**
     * 数组转换成set集合
     *
     * @param <E>   泛型
     * @param array 数组
     * @return
     */
    public static <E> Set<E> convertArrToSet(E[] array) {
        List<E> list = convertArrToList(array);
        return convertListToSet(list);
    }
}